package org.xmdl.parser.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.parser.antlr.Lexer;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class InternalSilkLexer extends Lexer {
    public static final int RULE_ID=4;
    public static final int RULE_ANY_OTHER=11;
    public static final int Tokens=24;
    public static final int EOF=-1;
    public static final int RULE_SL_COMMENT=9;
    public static final int T23=23;
    public static final int RULE_TERM_DOUBLE=6;
    public static final int T22=22;
    public static final int T21=21;
    public static final int T20=20;
    public static final int RULE_ML_COMMENT=8;
    public static final int RULE_STRING=7;
    public static final int RULE_INT=5;
    public static final int T12=12;
    public static final int T13=13;
    public static final int T14=14;
    public static final int RULE_WS=10;
    public static final int T15=15;
    public static final int T16=16;
    public static final int T17=17;
    public static final int T18=18;
    public static final int T19=19;
    public InternalSilkLexer() {;} 
    public InternalSilkLexer(CharStream input) {
        super(input);
    }
    public String getGrammarFileName() { return "../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g"; }

    // $ANTLR start T12
    public final void mT12() throws RecognitionException {
        try {
            int _type = T12;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:10:5: ( '(' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:10:7: '('
            {
            match('('); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T12

    // $ANTLR start T13
    public final void mT13() throws RecognitionException {
        try {
            int _type = T13;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:11:5: ( ',' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:11:7: ','
            {
            match(','); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T13

    // $ANTLR start T14
    public final void mT14() throws RecognitionException {
        try {
            int _type = T14;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:12:5: ( ')' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:12:7: ')'
            {
            match(')'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T14

    // $ANTLR start T15
    public final void mT15() throws RecognitionException {
        try {
            int _type = T15;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:13:5: ( '{' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:13:7: '{'
            {
            match('{'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T15

    // $ANTLR start T16
    public final void mT16() throws RecognitionException {
        try {
            int _type = T16;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:14:5: ( '}' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:14:7: '}'
            {
            match('}'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T16

    // $ANTLR start T17
    public final void mT17() throws RecognitionException {
        try {
            int _type = T17;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:15:5: ( '=' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:15:7: '='
            {
            match('='); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T17

    // $ANTLR start T18
    public final void mT18() throws RecognitionException {
        try {
            int _type = T18;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:16:5: ( 'print' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:16:7: 'print'
            {
            match("print"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T18

    // $ANTLR start T19
    public final void mT19() throws RecognitionException {
        try {
            int _type = T19;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:17:5: ( 'return' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:17:7: 'return'
            {
            match("return"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T19

    // $ANTLR start T20
    public final void mT20() throws RecognitionException {
        try {
            int _type = T20;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:18:5: ( '+' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:18:7: '+'
            {
            match('+'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T20

    // $ANTLR start T21
    public final void mT21() throws RecognitionException {
        try {
            int _type = T21;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:19:5: ( '-' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:19:7: '-'
            {
            match('-'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T21

    // $ANTLR start T22
    public final void mT22() throws RecognitionException {
        try {
            int _type = T22;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:20:5: ( '*' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:20:7: '*'
            {
            match('*'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T22

    // $ANTLR start T23
    public final void mT23() throws RecognitionException {
        try {
            int _type = T23;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:21:5: ( '/' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:21:7: '/'
            {
            match('/'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T23

    // $ANTLR start RULE_TERM_DOUBLE
    public final void mRULE_TERM_DOUBLE() throws RecognitionException {
        try {
            int _type = RULE_TERM_DOUBLE;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:18: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:20: ( '0' .. '9' )+ '.' ( '0' .. '9' )+
            {
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:20: ( '0' .. '9' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='0' && LA1_0<='9')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:21: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);

            match('.'); 
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:36: ( '0' .. '9' )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1181:37: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_TERM_DOUBLE

    // $ANTLR start RULE_ID
    public final void mRULE_ID() throws RecognitionException {
        try {
            int _type = RULE_ID;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1183:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1183:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
            {
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1183:11: ( '^' )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='^') ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1183:11: '^'
                    {
                    match('^'); 

                    }
                    break;

            }

            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1183:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_ID

    // $ANTLR start RULE_INT
    public final void mRULE_INT() throws RecognitionException {
        try {
            int _type = RULE_INT;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1185:10: ( ( '0' .. '9' )+ )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1185:12: ( '0' .. '9' )+
            {
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1185:12: ( '0' .. '9' )+
            int cnt5=0;
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1185:13: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt5 >= 1 ) break loop5;
                        EarlyExitException eee =
                            new EarlyExitException(5, input);
                        throw eee;
                }
                cnt5++;
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_INT

    // $ANTLR start RULE_STRING
    public final void mRULE_STRING() throws RecognitionException {
        try {
            int _type = RULE_STRING;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
            {
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0=='\"') ) {
                alt8=1;
            }
            else if ( (LA8_0=='\'') ) {
                alt8=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("1187:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                    {
                    match('\"'); 
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
                    loop6:
                    do {
                        int alt6=3;
                        int LA6_0 = input.LA(1);

                        if ( (LA6_0=='\\') ) {
                            alt6=1;
                        }
                        else if ( ((LA6_0>='\u0000' && LA6_0<='!')||(LA6_0>='#' && LA6_0<='[')||(LA6_0>=']' && LA6_0<='\uFFFE')) ) {
                            alt6=2;
                        }


                        switch (alt6) {
                    	case 1 :
                    	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
                    	    {
                    	    match('\\'); 
                    	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
                    	        input.consume();

                    	    }
                    	    else {
                    	        MismatchedSetException mse =
                    	            new MismatchedSetException(null,input);
                    	        recover(mse);    throw mse;
                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:62: ~ ( ( '\\\\' | '\"' ) )
                    	    {
                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                    	        input.consume();

                    	    }
                    	    else {
                    	        MismatchedSetException mse =
                    	            new MismatchedSetException(null,input);
                    	        recover(mse);    throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop6;
                        }
                    } while (true);

                    match('\"'); 

                    }
                    break;
                case 2 :
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:82: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                    {
                    match('\''); 
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:87: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
                    loop7:
                    do {
                        int alt7=3;
                        int LA7_0 = input.LA(1);

                        if ( (LA7_0=='\\') ) {
                            alt7=1;
                        }
                        else if ( ((LA7_0>='\u0000' && LA7_0<='&')||(LA7_0>='(' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFE')) ) {
                            alt7=2;
                        }


                        switch (alt7) {
                    	case 1 :
                    	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:88: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\\'' | '\\\\' )
                    	    {
                    	    match('\\'); 
                    	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
                    	        input.consume();

                    	    }
                    	    else {
                    	        MismatchedSetException mse =
                    	            new MismatchedSetException(null,input);
                    	        recover(mse);    throw mse;
                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1187:129: ~ ( ( '\\\\' | '\\'' ) )
                    	    {
                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                    	        input.consume();

                    	    }
                    	    else {
                    	        MismatchedSetException mse =
                    	            new MismatchedSetException(null,input);
                    	        recover(mse);    throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop7;
                        }
                    } while (true);

                    match('\''); 

                    }
                    break;

            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_STRING

    // $ANTLR start RULE_ML_COMMENT
    public final void mRULE_ML_COMMENT() throws RecognitionException {
        try {
            int _type = RULE_ML_COMMENT;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1189:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1189:19: '/*' ( options {greedy=false; } : . )* '*/'
            {
            match("/*"); 

            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1189:24: ( options {greedy=false; } : . )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0=='*') ) {
                    int LA9_1 = input.LA(2);

                    if ( (LA9_1=='/') ) {
                        alt9=2;
                    }
                    else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFE')) ) {
                        alt9=1;
                    }


                }
                else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFE')) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1189:52: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

            match("*/"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_ML_COMMENT

    // $ANTLR start RULE_SL_COMMENT
    public final void mRULE_SL_COMMENT() throws RecognitionException {
        try {
            int _type = RULE_SL_COMMENT;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
            {
            match("//"); 

            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:24: (~ ( ( '\\n' | '\\r' ) ) )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( ((LA10_0>='\u0000' && LA10_0<='\t')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\uFFFE')) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:24: ~ ( ( '\\n' | '\\r' ) )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:40: ( ( '\\r' )? '\\n' )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0=='\n'||LA12_0=='\r') ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:41: ( '\\r' )? '\\n'
                    {
                    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:41: ( '\\r' )?
                    int alt11=2;
                    int LA11_0 = input.LA(1);

                    if ( (LA11_0=='\r') ) {
                        alt11=1;
                    }
                    switch (alt11) {
                        case 1 :
                            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1191:41: '\\r'
                            {
                            match('\r'); 

                            }
                            break;

                    }

                    match('\n'); 

                    }
                    break;

            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_SL_COMMENT

    // $ANTLR start RULE_WS
    public final void mRULE_WS() throws RecognitionException {
        try {
            int _type = RULE_WS;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1193:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1193:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
            {
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1193:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
            int cnt13=0;
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt13 >= 1 ) break loop13;
                        EarlyExitException eee =
                            new EarlyExitException(13, input);
                        throw eee;
                }
                cnt13++;
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_WS

    // $ANTLR start RULE_ANY_OTHER
    public final void mRULE_ANY_OTHER() throws RecognitionException {
        try {
            int _type = RULE_ANY_OTHER;
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1195:16: ( . )
            // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1195:18: .
            {
            matchAny(); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RULE_ANY_OTHER

    public void mTokens() throws RecognitionException {
        // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:8: ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | RULE_TERM_DOUBLE | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
        int alt14=20;
        alt14 = dfa14.predict(input);
        switch (alt14) {
            case 1 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:10: T12
                {
                mT12(); 

                }
                break;
            case 2 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:14: T13
                {
                mT13(); 

                }
                break;
            case 3 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:18: T14
                {
                mT14(); 

                }
                break;
            case 4 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:22: T15
                {
                mT15(); 

                }
                break;
            case 5 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:26: T16
                {
                mT16(); 

                }
                break;
            case 6 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:30: T17
                {
                mT17(); 

                }
                break;
            case 7 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:34: T18
                {
                mT18(); 

                }
                break;
            case 8 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:38: T19
                {
                mT19(); 

                }
                break;
            case 9 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:42: T20
                {
                mT20(); 

                }
                break;
            case 10 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:46: T21
                {
                mT21(); 

                }
                break;
            case 11 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:50: T22
                {
                mT22(); 

                }
                break;
            case 12 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:54: T23
                {
                mT23(); 

                }
                break;
            case 13 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:58: RULE_TERM_DOUBLE
                {
                mRULE_TERM_DOUBLE(); 

                }
                break;
            case 14 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:75: RULE_ID
                {
                mRULE_ID(); 

                }
                break;
            case 15 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:83: RULE_INT
                {
                mRULE_INT(); 

                }
                break;
            case 16 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:92: RULE_STRING
                {
                mRULE_STRING(); 

                }
                break;
            case 17 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:104: RULE_ML_COMMENT
                {
                mRULE_ML_COMMENT(); 

                }
                break;
            case 18 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:120: RULE_SL_COMMENT
                {
                mRULE_SL_COMMENT(); 

                }
                break;
            case 19 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:136: RULE_WS
                {
                mRULE_WS(); 

                }
                break;
            case 20 :
                // ../org.xmdl.silk/src-gen/org/xmdl/parser/antlr/internal/InternalSilk.g:1:144: RULE_ANY_OTHER
                {
                mRULE_ANY_OTHER(); 

                }
                break;

        }

    }


    protected DFA14 dfa14 = new DFA14(this);
    static final String DFA14_eotS =
        "\7\uffff\2\33\3\uffff\1\42\1\43\1\23\1\uffff\2\23\10\uffff\1\33"+
        "\1\uffff\1\33\7\uffff\1\43\3\uffff\4\33\1\56\1\33\1\uffff\1\60\1"+
        "\uffff";
    static final String DFA14_eofS =
        "\61\uffff";
    static final String DFA14_minS =
        "\1\0\6\uffff\1\162\1\145\3\uffff\1\52\1\56\1\101\1\uffff\2\0\10"+
        "\uffff\1\151\1\uffff\1\164\7\uffff\1\56\3\uffff\1\156\1\165\1\164"+
        "\1\162\1\60\1\156\1\uffff\1\60\1\uffff";
    static final String DFA14_maxS =
        "\1\ufffe\6\uffff\1\162\1\145\3\uffff\1\57\1\71\1\172\1\uffff\2\ufffe"+
        "\10\uffff\1\151\1\uffff\1\164\7\uffff\1\71\3\uffff\1\156\1\165\1"+
        "\164\1\162\1\172\1\156\1\uffff\1\172\1\uffff";
    static final String DFA14_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\2\uffff\1\11\1\12\1\13\3\uffff"+
        "\1\16\2\uffff\1\23\1\24\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\16\1\uffff"+
        "\1\11\1\12\1\13\1\22\1\21\1\14\1\17\1\uffff\1\15\1\20\1\23\6\uffff"+
        "\1\7\1\uffff\1\10";
    static final String DFA14_specialS =
        "\61\uffff}>";
    static final String[] DFA14_transitionS = {
            "\11\23\2\22\2\23\1\22\22\23\1\22\1\23\1\20\4\23\1\21\1\1\1\3"+
            "\1\13\1\11\1\2\1\12\1\23\1\14\12\15\3\23\1\6\3\23\32\17\3\23"+
            "\1\16\1\17\1\23\17\17\1\7\1\17\1\10\10\17\1\4\1\23\1\5\uff81"+
            "\23",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\32",
            "\1\34",
            "",
            "",
            "",
            "\1\41\4\uffff\1\40",
            "\1\45\1\uffff\12\44",
            "\32\33\4\uffff\1\33\1\uffff\32\33",
            "",
            "\uffff\46",
            "\uffff\46",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\50",
            "",
            "\1\51",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\45\1\uffff\12\44",
            "",
            "",
            "",
            "\1\52",
            "\1\53",
            "\1\54",
            "\1\55",
            "\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
            "\1\57",
            "",
            "\12\33\7\uffff\32\33\4\uffff\1\33\1\uffff\32\33",
            ""
    };

    static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
    static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
    static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
    static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
    static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
    static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
    static final short[][] DFA14_transition;

    static {
        int numStates = DFA14_transitionS.length;
        DFA14_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
        }
    }

    class DFA14 extends DFA {

        public DFA14(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 14;
            this.eot = DFA14_eot;
            this.eof = DFA14_eof;
            this.min = DFA14_min;
            this.max = DFA14_max;
            this.accept = DFA14_accept;
            this.special = DFA14_special;
            this.transition = DFA14_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | RULE_TERM_DOUBLE | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
        }
    }
 

}